home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 34.zip / BS1 part 34 / GFA basic training.adf / Requester / RADIO_BUTTONS.LST < prev    next >
File List  |  1989-06-01  |  4KB  |  142 lines

  1. ' radio_buttons
  2. '
  3. @radio_button
  4. PROCEDURE radio_button
  5.   LOCAL hintergrund$,revers$,x$,b_breite%,b_hÖhe%,n_gruppen%,x%
  6.   LOCAL bremse!,gefunden!,ende!,tx&,ty&,y|,i|,j|,k|,j1|
  7.   LOCAL gruppe|,eintrag|,z|,t|,b&,form$,wÄhlbar!,gewÄhlt!,revers!
  8.   READ b_breite%
  9.   READ b_hÖhe%
  10.   READ n_gruppen%
  11.   DIM form$(n_gruppen%,10),b&(n_gruppen%,10,4),wÄhlbar!(n_gruppen%,10)
  12.   DIM gewÄhlt!(n_gruppen%,10),revers!(n_gruppen%)
  13.   ARRAYFILL gewÄhlt!(),FALSE
  14.   ARRAYFILL revers!(),FALSE
  15.   bremse!=FALSE
  16.   x%=320-b_breite%/2
  17.   y|=100-b_hÖhe%/2
  18.   '
  19.   COLOR 0
  20.   GET x%,y|,x%+b_breite%+6,y|+b_hÖhe%+4,hintergrund$
  21.   PBOX x%,y|,x%+b_breite%+6,y|+b_hÖhe%+4
  22.   COLOR 1
  23.   '
  24.   BOX x%,y|,x%+b_breite%+6,y|+b_hÖhe%+4
  25.   BOX x%+3,y|+2,x%+b_breite%+3,y|+b_hÖhe%+2
  26.   ADD x%,3
  27.   ADD y|,2
  28.   '
  29.   FOR i|=1 TO n_gruppen%
  30.     j|=1
  31.     DO
  32.       READ form$(i|,j|)
  33.       EXIT IF form$(i|,j|)="-------------"
  34.       READ wÄhlbar!(i|,j|)
  35.       FOR k|=1 TO 4
  36.         READ b&(i|,j|,k|)
  37.       NEXT k|
  38.       ADD b&(i|,j|,1),x%
  39.       ADD b&(i|,j|,2),y|
  40.       ADD b&(i|,j|,3),x%
  41.       ADD b&(i|,j|,4),y|
  42.       @r_setzen
  43.       INC j|
  44.     LOOP
  45.   NEXT i|
  46.   '
  47.   REPEAT
  48.     '
  49.     IF MOUSEX>x% AND MOUSEX<x%+b_breite% AND MOUSEY>y| AND MOUSEY<y|+b_hÖhe% AND MOUSEK=1 AND NOT bremse!
  50.       @r_position
  51.       @r_auswertung
  52.     ENDIF
  53.     IF bremse!
  54.       bremse!=MOUSEK
  55.     ENDIF
  56.     '
  57.   UNTIL ende!=TRUE
  58.   ERASE form$(),b&(),wÄhlbar!(),gewÄhlt!(),revers!()
  59.   ' Datazeilen
  60.   '
  61. RETURN
  62. PROCEDURE r_position
  63.   bremse!=TRUE
  64.   gefunden!=FALSE
  65.   i|=1
  66.   REPEAT
  67.     j|=1
  68.     REPEAT
  69.       IF MOUSEX>b&(i|,j|,1) AND MOUSEY>b&(i|,j|,2) AND MOUSEX<b&(i|,j|,3) AND MOUSEY<b&(i|,j|,4)
  70.         j1|=j|
  71.         gefunden!=TRUE
  72.       ENDIF
  73.       INC j|
  74.     UNTIL form$(i|,j|)="-------------"
  75.     INC i|
  76.   UNTIL i|>n_gruppen% OR gefunden!=TRUE
  77.   IF gefunden!
  78.     gruppe|=PRED(i|)
  79.     eintrag|=j1|
  80.     IF gruppe|=n_gruppen%
  81.       ende!=TRUE
  82.     ENDIF
  83.   ELSE
  84.     gruppe|=0
  85.   ENDIF
  86. RETURN
  87. PROCEDURE r_auswertung
  88.   IF wÄhlbar!(gruppe|,eintrag|)
  89.     IF gewÄhlt!(gruppe|,eintrag|)
  90.       gewÄhlt!(gruppe|,eintrag|)=FALSE
  91.       revers!(gruppe|)=FALSE
  92.       GET b&(gruppe|,eintrag|,1),b&(gruppe|,eintrag|,2),b&(gruppe|,eintrag|,3),b&(gruppe|,eintrag|,4),revers$
  93.       PUT b&(gruppe|,eintrag|,1),b&(gruppe|,eintrag|,2),revers$,30
  94.     ELSE IF NOT gewÄhlt!(gruppe|,eintrag|)
  95.       IF revers!(gruppe|)
  96.         j|=1
  97.         REPEAT
  98.           IF gewÄhlt!(gruppe|,j|)
  99.             GET b&(gruppe|,j|,1),b&(gruppe|,j|,2),b&(gruppe|,j|,3),b&(gruppe|,j|,4),revers$
  100.             PUT b&(gruppe|,j|,1),b&(gruppe|,j|,2),revers$,30
  101.             gewÄhlt!(gruppe|,j|)=FALSE
  102.           ENDIF
  103.           INC j|
  104.         UNTIL form$(gruppe|,j|)="-------------"
  105.       ELSE
  106.         revers!(gruppe|)=TRUE
  107.       ENDIF
  108.       gewÄhlt!(gruppe|,eintrag|)=TRUE
  109.       GET b&(gruppe|,eintrag|,1),b&(gruppe|,eintrag|,2),b&(gruppe|,eintrag|,3),b&(gruppe|,eintrag|,4),revers$
  110.       PUT b&(gruppe|,eintrag|,1),b&(gruppe|,eintrag|,2),revers$,30
  111.       '
  112.       ' evtl. revers aus
  113.       '
  114.     ENDIF
  115.   ENDIF
  116. RETURN
  117. PROCEDURE r_setzen
  118.   GRAPHMODE 1
  119.   IF INSTR(form$(i|,j|),"|")
  120.     z|=0
  121.     t|=1
  122.     WHILE INSTR(form$(i|,j|),"|",t|)
  123.       INC z|
  124.       x$=MID$(form$(i|,j|),t|,INSTR(form$(i|,j|),"|",t|)-t|)
  125.       t|=SUCC(INSTR(form$(i|,j|),"|",t|))
  126.       tx&=(b&(i|,j|,1)+((b&(i|,j|,3)-b&(i|,j|,1))/2))-(LEN(x$)*4)
  127.       ty&=b&(i|,j|,2)-2+z|*10
  128.       TEXT tx&,ty&,x$
  129.     WEND
  130.     x$=MID$(form$(i|,j|),t|,LEN(form$(i|,j|))-PRED(t|))
  131.     tx&=(b&(i|,j|,1)+((b&(i|,j|,3)-b&(i|,j|,1))/2))-(LEN(x$)*4)
  132.     ty&=b&(i|,j|,2)-2+SUCC(z|)*10
  133.     TEXT tx&,ty&,x$
  134.     BOX b&(i|,j|,1),b&(i|,j|,2),b&(i|,j|,3),b&(i|,j|,4)
  135.   ELSE
  136.     tx&=(b&(i|,j|,1)+((b&(i|,j|,3)-b&(i|,j|,1))/2))-(LEN(form$(i|,j|))*4)
  137.     ty&=(b&(i|,j|,2)+(b&(i|,j|,4)-b&(i|,j|,2))/2)+3
  138.     TEXT tx&,ty&,form$(i|,j|)
  139.     BOX b&(i|,j|,1),b&(i|,j|,2),b&(i|,j|,3),b&(i|,j|,4)
  140.   ENDIF
  141. RETURN
  142.